v2.3来了!ABACUS小步快跑,重大升级,更快更稳更好用!
7月1日ABACUS新版本v2.3重磅发布。新版本采用了新的平面波产生和并行模块,更好地支持了平面波基组的CPU大规模并行;增加了全新的随机波函数密度泛函理论方法(Stochastic DFT);修复了近3个月来用户反馈的多处bugs,进一步提升了稳定性和易用性。
具体请见:
https://github.com/deepmodeling/abacus-develop/releases/tag/v2.3.0
ABACUS新版本介绍
2022年夏天(7月1日)ABACUS迎来了新版本v2.3的重磅发布。自2022年春天发布的v2.2版本以来,ABACUS开发团队紧锣密鼓的发布了四个小版本(ABACUS v2.2.1,v2.2.2,v2.2.3和v2.2.4版本),相关更新也已完全收录在本次2.3版本中。新版本在平面波或数值原子轨道基组求解Kohn-Sham方程和进行第一性原理分子动力学计算等方面有诸多改进,修复了近3个月来用户反馈的多处bugs,并且在稳定性和易用性上也有了稳步进展。2.3版本采用了新的平面波产生和并行模块,更好地支持平面波基组的CPU大规模并行,优化了平面波基组部分的计算瓶颈,使其更好地用于实际的科研生产计算。此外,2.3版本增加了全新的随机波函数密度泛函理论方法;推出了多个开发中的功能试用版本,想使用基于数值原子轨道(LCAO)的机器学习交换关联泛函DeePKS、DFT+U计算、杂化泛函计算、自旋轨道耦合、隐式溶剂化模型计算、Dipole Correction等功能的朋友可以通过GitHub(https://github.com/deepmodeling/abacus-develop)、微信群等方式联系(见下);最后,2.3版本优化了GitHub在线文档的排版和内容,方便用户快速上手使用程序。
新功能:随机波函数密度泛函理论方法
2.3版本推出了全新功能模块:“随机波函数密度泛函理论(Stochastic Density Functional Theory,简称SDFT)”方法[https://arxiv.org/abs/2204.05662],SDFT方法是求解Kohn-Sham(简称KS)方程的新方法,2013年由R. Baer, D. Neuhauser和E. Rabani提出[Phys. Rev. Lett. 111, 106402 (2013)],通过采用随机轨道而不是Kohn-Sham轨道来求系统的基态电子密度,具有线性标度的优点,使得大体系模拟成为可能。之后他们进一步提出有限温度的SDFT方法[Phys. Rev. B 97, 115207 (2018)],在模拟高温体系具有显著的效率优势。在ABACUS 2.3版本里,SDFT模块基于平面波实现,可计算给定系统的基态电子密度,基态能量,原子受力和晶胞应力,可处理布里渊区多k点,并已实现k点、随机轨道、平面波三种CPU大规模并行方案,将来有望进一步实现以随机波函数为基础的stochastic TDDFT或stochastic杂化泛函等新功能。我们希望有更多用户能够加入并将SDFT方法使用起来,如果SDFT方法对您的科研有帮助,那将是对我们团队最好的回馈。正如我们在DeepModeling宣言里提到的,我们始终相信用户的反馈和快速迭代才是促进软件更新的最好方式。更多关于SDFT的介绍将在后续推出。
快速访问地址
ABACUS在DeepModeling社区中的GitHub仓库地址为:
https://github.com/deepmodeling/abacus-develop
ABACUS的Gitee镜像仓库地址为:
https://gitee.com/deepmodeling/abacus-develop
ABACUS网站访问:
http://abacus.ustc.edu.cn/
ABACUS 2.3版本的relases tag:
https://github.com/deepmodeling/abacus-develop/releases/tag/v2.3.0
文档(包括输入输出参数介绍、功能介绍、例子介绍、开发者须知等):
https://github.com/deepmodeling/abacus-develop#readme
供用户和开发者提问和讨论的地方:
https://github.com/deepmodeling/abacus-develop/issues
https://github.com/deepmodeling/abacus-develop/discussions
微信群:
添加DeepModeling小助手申请加入,微信号为:deeppotential
快速安装指南
对于VS Code用户而言,2.3版本的ABACUS支持拉取已安装好依赖的镜像以实现快速部署。在本地安装好git、docker后,打开 Visual Studio code 安装 Remote - Container 插件,点左下角Open a Remote Window,在命令框里选择 Clone a Repository in Container Volume,在对话框中输入https://github.com/deepmodeling/abacus-develop.git 即可配置好具有全部依赖项的ABACUS运行环境。完成环境制作后,即可使用cmake编译安装ABACUS。
如果希望手动安装各个依赖,请参考详细的安装文档:
https://github.com/deepmodeling/abacus-develop/blob/develop/docs/install.md
功能更新列表
新增关键字"kspacing"使得布里渊区k点取样更方便,增加了相关文档、样例 #1011
大幅提升了平面波基组计算时原子受力和晶格应力计算效率 #1015 #1021
ABACUS+DeePKS泛函模型训练新支持对stress label的学习 #1028
在多K点场景下,关闭对称性分析时,自动生成的k点依然包含时间反演对称性 #1044 #1046
Stochastic DFT求原子受力和晶格应力性能优化 #1039
使用新的平面波模块进行快速傅里叶变换的计算,显著提升了平面波部分代码的计算效率
重置了分子动力学(MD)的一些默认参数,使得默认参数更加合理
在混合使用MPI与OpenMP时,ABACUS可以设定合适的线程数量以避免线程超订
新增了表面计算的偶极修正功能,以及添加电场的功能 #927
将新开发的平面波模块加入程序中,小幅提升平面波基组并行计算性能 #935
添加新的容器镜像 #941
新增了MD续跑时running_md.log的续写功能 #940
将MD的输出STRU_MD_$step存放到单独的文件夹OUT.*/STRU/中 #940
增加局域轨道基LCAO下多k点的实空间波函数输出功能 #808
新增LCAO基组投影能带的输出功能,新增输入参数“projected_band” #919
新增了控制输出文件打印频率的两个输入参数“out_freq_elec”和“out_freq_ion” #892
优化了计算LCAO基组Gamma点求原子受力和晶格应力的算法,对一些较大体系计算效率有明显提升 #880 #894 #897
优化了平面波基组下分子动力学和原子弛豫计算对角化初始效率较慢的问题 #864
Bug修复列表
本次2.3版本中修复了2.2版本发布后收集到的许多bug,增强了程序稳定性。
修复了sumdat.sh的输出格式 #1019
修复了使用的CPU核数可能大于FFT在z轴方向上的格点数的问题 #1017
修复了平面波相关的内存泄漏问题 #1020
为数组添加了头文件 #1034
修复了补偿电荷相关代码中的bug #1038
修复了MD续算时会卡住的bug #1048
修复了离子结构优化的时候计算D2的范德华力出错的bug
修复了进行并行计算的MD模拟时程序会卡住的相关Bug
修复了LCAO里不设stress计算时(cal_stress=0)MD模拟出现错误的Bug
修复了LCAO里屏幕输出的能量差EDIFF持续为0的bug
修复了若干处内存访问越界及内存泄漏问题
修复了LCAO做格点积分在处理边界问题上出现段错误的一个bug #887
修复了赝势读取多行标签出错的bug #910
修复了赝势不带非局域势投影子时程序自动退出的bug #908
修复了对Makefile编译的支持,Makefile.vars配置文件的格式调整为与2.1.0版本一致。#122
修复了原子轨道基组并行划分异常报错的问题 #131
修复了SPIN1_CHG.cube文件输出不受out_chg参数控制的问题 #132
修复了分子动力学NVT系综的热库初始参数md_tfreq不合理的默认值 #857
修复了分子动力学输出文件在续算中未正确重置的问题 #824
修复了分子动力学屏幕输出结果pw基组和lcao基组不一致的问题 #130
修复了自旋轨道效应计算时占据态个数输出不正确的问题 #826
去除了赝势读取中的冗余输出信息 #862
代码重构列表
本次2.3版本加入了新的代码模块:ESolver、HSolver、Psi,提高了代码的可读性,降低了开发者的开发门槛,未来我们将继续进行代码重构,努力打造开源开放开发者友好型的DFT软件平台。
在文档中添加了‘Run ABACUS’的内容 #1037
重构:StochasticDFT的代码加入ESolver-HSolver-Psi代码框架 #1039
完成LCAO代码使用HSolver模块的重构
重构数值原子轨道的格点积分程序,统一内部接口
在PW代码中使用HSolver,在GlobalC:wf中用psi替换evc #923
默认构建选项添加libxc #924
更新安装说明文档 #943
添加使用plot_tools绘制PDOS和PBANDS的样例 #950
整合了LCAO和PW两条线上的电子自洽迭代相关代码 #875 #892 #909
测试列表
本次2.3版本在测试的多样性和覆盖完整性上都有大量的进步。
单元测试:面向开发者的单元测试保护了代码的安全性,使其不容易被其他开发者的误修改破坏正确性。新开发代码和相应的单元测试同步开发的方式已逐渐成为ABACUS开发者的共识和准则。值得注意的是,用户编译程序的时候默认不加入单元测试编译选项以加快编译速度。
持续集成:持续集成(CI)是ABACUS开源开发模式的基础,覆盖完善且运行快速的CI测试有效保障了每次PR提交代码的正确性,也是开发者快速debug的好帮手。
性能测试集:本次2.3版本新增加了性能测试集,为高性能优化开发者提供了覆盖多种实际应用场景的测试算例。
更新MD测试集 init_vel=1#1022
移除了UT hsolver_diago_parallel #1031
添加了MD场景的ADS、LGV、MSST测试 #1032
为隐式溶剂化模型添加了PW 和LCAO测试集 #1040
修复了MD中不稳定的单元测试 #1026
完善了性能测试与CUDA GPU计算测试的支持
完善了重启MD模拟的文件续写功能
在CI测试中加入对out_dm, out_mul, init_wfc,out_wfc_pw等输入参数的测试算例
添加性能测试集"example/performamce",及最大内存消耗测试 #928 #922
新增水的HSE集成测试样例 #939
为parallel_reduce.cpp中的函数添加UT #936
单元测试更新 #835 #838 #839 #861 #863 #860
持续集成测试更新 #852 #853 #854
完整的更新列表
2.3.0版本
https://github.com/deepmodeling/abacus-develop/releases/tag/v2.3.0
2.2.1版本
https://github.com/deepmodeling/abacus-develop/releases/tag/v2.2.1
2.2.2版本
https://github.com/deepmodeling/abacus-develop/releases/tag/v2.2.2
2.2.3版本
https://github.com/deepmodeling/abacus-develop/releases/tag/v2.2.3
2.2.4版本
https://github.com/deepmodeling/abacus-develop/releases/tag/v2.2.4
贡献者 ✦
@Asuna981002 @Qianruipku @Unboundwill @YuLiu98 @caic99 @dyzheng @haozhihan @hongriTianqi @jiyuyang @maki49 @ouqi0711 @pxlxingliang @qianruipku @sunliang98 @sunml99 @wenfei-li
- End -
(如需转载图文请与公众号后台联系)
-------------------------------
推荐阅读
ABACUS :携手DeepModeling,做源自中国、开源开放的DFT软件